package jin.chen.service;

import io.swagger.models.auth.In;
import jin.chen.pojo.*;
import jin.chen.pojo.vo.*;
import jin.chen.utils.PagedResult;
import jin.chen.utils.Result;

import java.util.List;

/**
 * 接口商品
 */
public interface ItemService {

    /**
     * 根据商品id查询商品详情
     * @param itemId
     * @return
     */
    public Items queryItemById(String itemId);

    /**
     * 根据商品id查询商品图片集合
     * @param itemId
     * @return
     */
    public List<ItemsImg> queryItemImgList(String itemId);

    /**
     * 根据商品id查询商品规格列表
     * @param itemId
     * @return
     */
    public List<ItemsSpec> queryItemSpecList(String itemId);

    /**
     * 根据商品id查询商品参数
     * @param itemId
     * @return
     */
    public ItemsParam queryItemParam(String itemId);


    /**
     * 根据商品id查询相关评价信息
     * @param itemId
     * @return
     */
    public CommentLevelCountsVO queryCommentCounts(String itemId);


    /**
     * 根据商品id查询商品评价,带有分页
     * @param itemId
     * @param level
     * @return
     */
    public PagedResult queryItemPageComments(String itemId, Integer level, Integer page, Integer pageSize);

    /**
     * 搜索商品列表根据关键字查询
     * @param keywords
     * @param sort
     * @param page
     * @param pageSize
     * @return
     */
    public PagedResult searchItems(String keywords, String sort, Integer page, Integer pageSize);

    /**
     * 搜索商品列表根据三级分类id查询
     * @param catId
     * @param sort
     * @param page
     * @param pageSize
     * @return
     */
    public PagedResult searchItemsByCatId(Integer catId, String sort, Integer page, Integer pageSize);

    /**
     * 根据规格id查询数据，用于再次刷新购物车数据
     * @param specIds
     * @return
     */
    public List<ShopCatVO> queryItemsBySpecIds(String specIds);
}
